<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box1 {
            border: 10px red solid;
            /* overflow: hidden; */


        }

        .box2 {
            width: 100px;
            height: 100px;
            background-color: #bfa;
            float: left;
            /* 不是box2把box1撑开的 而是box3把box1撑开的 */
            /* 通过box3 撑开 */
            /* box中甚至不用写东西  原本目的使box: 和box1一样高 */

        }

        .box3 {

            clear: both;
            /* box3跑到box1的下面 而且box3没有脱离文档流 */
            /* 所以box1要把box3包起来 */
            /* box3清楚了box2对他的影响 */
            /* 实际上box3的上边距是很大的 但是它的可见框 就是那么大 */
        }

        .box1::after {
            /*不独占一行 行内元素*/
            content: '';
            display: block;
            clear: both;

            /* 通过after 伪元素 设置成块 用一个clear both  清楚浮动的影响 */
            /* 及时清除了 浮动 也没有效果 */
            /* 完美的  原理是一样的 不过方式不一样 */
            /* 一个通过html 一个通过css  */

        }
    </style>
</head>

<body>
    <div class="box1">
        <div class="box2"></div>
        <!-- <div class="box3"></div> -->

        <!-- box3并没有浮动 box1的高度是被box3撑开 -->
        <!-- box2没法做的事 box3去做 -->
        <!-- box1没有把box2装下 -->
        <!-- 这样就很完美  结构 处理 表现   但是不合适 不希望css问题 使用css 解决 -->

    </div>
</body>

</html>